/**
	@fn xmlhttpPost(strURL, func_response, parameter)
  	@brief Funzione per il richiamo di pagine sul server e visualizzazione tramite javascript

  	@param strURL		pagina
  	@param func_response	funzione da chiamare per la risposta
  	@param parameter		parametri da passare alla pagina
	@retval risposta 	dal server
*/

var ts1;
var ts2;
var ts3;

function xmlhttpPost(strURL, func_response, parameter) 
{
	if (window.XMLHttpRequest) 
	{
		var stype = "new XMLHttpRequest()";
	} 
	else if (window.ActiveXObject) 
	{
		var stype = 'new ActiveXObject("Microsoft.XMLHTTP")';
	} 
	else 
	{
		alert("Ajax: Browser no supported");
		return;
	}
	
	var str = "";
	var cls = "xmlHttpReq_" + func_response;
    str  = "var " + cls + " = false;\n";
    str += cls + " = " + stype + ";\n";
    str += cls + ".open('POST', '" + strURL + "', true);\n";
    str += cls + ".setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n";
    str += cls + ".onreadystatechange = function() {\n";
    str += "	if (" + cls + ".readyState == 4) {\n";
    str += "		"+ func_response +"(" + cls + ".responseText + \" \");\n";
    str += "    }\n";
    str += "}\n";
	str += cls + ".send(parameter);";
	//alert(str);
//document.getElementById("debug").innerHTML = str;

	eval(str);
}

/**
	@fn valueForm(strURL, func_response, parameter)
  	@brief crea una stringa di paramentri con i valori presi dai campi del form

  	@param	prefixSearch		prefisso di recerca dei campi id/name 
  	@param	hForm				puntatore al form
  	@param	delPrefix			nella creazione dei parametri elmina il prefisso
	@retval param 				stringa paramentri
*/
function valueForm( prefixSearch, hForm, delPrefix )
{
	var nEle = hForm.elements.length;
	var type = '';
	var nomeId = '';
	var nomeName = '';
	var nomeTmp = '';
  
	var param = '';

	while( nEle-- )
	{
		nomeId = '';
		nomeName = '';
		nomeTmp = '';
		
		if (hForm.elements[nEle].id) nomeId = hForm.elements[nEle].id + '';
		if (hForm.elements[nEle].name) nomeName = hForm.elements[nEle].name + '';

		if ( nomeName == '' && nomeId == '' ) continue;

		if ( nomeName.substr(0,4) == prefixSearch )
			nomeTmp = nomeName;
		else if ( nomeId.substr(0,4) == prefixSearch )
			nomeTmp = nomeId;
		else if ( prefixSearch != '' )
			continue;
		else if ( nomeName != '' )
			nomeTmp = nomeName;
		else
			nomeTmp = nomeId;
    
		if ( delPrefix == 1 && prefixSearch != '' )
			nome = nomeTmp.substr(4);
		else
			nome = nomeTmp;
    
		//alert(hForm.elements[nEle].name+" "+hForm.elements[nEle].type);
		type = hForm.elements[nEle].type;
		
		switch( hForm.elements[nEle].type )
		{
			case 'checkbox':
				if (hForm.elements[nEle].checked == true)
					param += "&" + nome + "=S";
				else
					param += "&" + nome + "=";
				break;
			
			case 'select':
				var i = hForm.elements[nEle].length;
				while(i--)
				{
					if ( !hForm.elements[nEle].options[i].selected) continue;

					param += "&" + nome + "=" + hForm.elements[nEle].options[i].value;
					break;
				}
				break;
				
			case 'select-multiple':
				var i = hForm.elements[nEle].length;
				while(i--)
				{
					if ( !hForm.elements[nEle].options[i].selected) continue;

					param += "&" + nome + "[]=" + hForm.elements[nEle].options[i].value;
				}
				break;
				
			case 'radio':
				if ( hForm.elements[nEle].checked ) param += '&' + nome + "=" + hForm.elements[nEle].value;
				break;
				
			default:
				param += "&" + nome + "=" + hForm.elements[nEle].value;
		}
	}

	//alert(param);
	return param;
}

function clearContent( obj )
{
	document.getElementById( obj ).innerHTML = "";
}

function jsExec( obj )
{
	var sObj = obj.getElementsByTagName('script');
	var head = document.getElementsByTagName("head")[0];
	
	if ( document.getElementById( 'jsGenerate' ) )
	{
		head.removeChild( document.getElementById( 'jsGenerate' ) );
	}
	
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.id = "jsGenerate";
	
	//alert(sObj.length);
	for( var i=0; i < sObj.length; i++ )
	{
		script.appendChild(document.createTextNode(sObj[i].text)); //str is the string containing script
		//eval(sObj[i].text);
	}
	head.appendChild(script);
}

function startTimer()
{
	ts1 = new Date();
}

function stopTimer()
{
	ts2 = new Date();
	ts3 = ts2 - ts1;
	var date = new Date(ts3);
	var hours = date.getHours();
	var minutes = date.getMinutes();
	var seconds = date.getSeconds();
	var millisec = date.getMilliseconds();
	
	if ( document.getElementById('vTimer') )
		document.getElementById('vTimer').value = minutes + ':' + seconds + '.' + millisec;
	
	return minutes + ':' + seconds + '.' + millisec;
}

